#include <cstdio>
#include <set>
#include <iostream>
using std::cout;
using std::endl;
using std::set;

template <class T>
T add(T t1,T t2){
    return t1 + t2;
}

set<int> add(set<int> t1,set<int> t2){
    set<int> t3;
    for(auto & i:t1){
        t3.insert(i);
    }
    for(auto & i:t2){
        t3.insert(i);
    }
    return t3;
}

void test(){
    int a = 10, b = 11;
    cout << add(a,b) << endl;
    double c = 1.1,d = 2.2;
    cout << add(c,d) << endl;
    set<int> t1({1,2,3,4});
    set<int> t2({3,4,5,6});
    set<int> t3 = add(t1,t2);
    for(auto & i : t3){
        cout << i << " ";
    }
    cout << endl;
}

int main()
{
    

    test ();
    return 0;
}

